## GeneSys:
Generating ViSta System Files
after the CVS Download

The philosophy of CVS is such that no files are on the CVS server which can be generated locally from other files on the server. Thus, when you finish the CVS download you have no .INI file, no .WKS files, the PREFS folder contains no preference files, and the FSLFILES folder has no .FSL files in it. These are all generated files. Therefore, you have to generate these files. That's what this readme file is about.

## Generating the WKS, FSL and PREFS files

NOTE: During the following process, ViSta will create and save a new workspace and then restart itself using the new workspace. This occurs several times. Occasionally it will attempt to restart before the workspace is entirely saved, generating a "Corrupt Image File" message. When this happens, simply double-click the ViSta.exe file to get ViSta running again.

1. Double-Click the ViSta.exe file. You will have to click "OK" to the *default-path* dialog, and "OK" to the "GeneSys ReCreating Initial State" dialog. This will cause the initialization files to build the WXLS32.INI file.
   - ViSta now automatically restarts in standard install mode and asks you to say who ViSta is being Installed by. Choose "An Individual ViSta User" and click "Continue". Then click "OK" to the two small dialogs (it's generating default preference files).
   - Watch as ViSta automatically restarts, loads in all of the source and runtime Lisp files and creates the XLISP.WKS file, which is the XLispStat+ViSta workspace file. It also generates a BUILD1955.LOG file, a log file of the build process. (The number 1955 means that I built ViSta 1954 times between January 13th and March 30th of 2000!)
2. Now double-click the ViSta.exe file again. Be patient. It is configuring itself and must restart twice. But eventually it should come up in the normal fashion.
3. After you read the welcome messages, Register, and dismiss the Internet Browser, you should type into the Listener Window
   `(devel-mode)`
   which puts ViSta in developer mode. The DEVELOP menu appears at the top of the desktop window.
4. Choose DEVELOP/UPDATE PREF FILES to update the system preference files.
5. Click the DeskTop window's close box. Since ViSta is in DEVEL-MODE it checks to see if it needs to compile any files. It does, and proceeds to compile all of the .LSP files and to remake vista. There are 94 source files and 10 runtime files that are compiled, generating 104 .FSL files which are placed in the FSLFILES and RUNTIME folders. This will take a fairly long time (24 minutes on my 233 MHz laptop).
6. There will be occasional "Compiler Error" messages. Dont worry about them. The compiler fixes itself. Take a break. Relax. Have a cup of coffee. You are nearly finished.
7. When the .FSL files are all generated ViSta will restart and make another workspace, this time using the FSL files. Then it exits and waits for you to come back from your break.
8. Run ViSta one more time. Read the messages. Type in the Listener Window
   `(make-xls)`
   which generates the XLSONLY.WKS file. This is the XLisp workspace, without ViSta, but with our modifications to the XLisp system.
9. Congratulations! You now have a complete ViSta development environment!

You are finished! But, if you wish, you can test the XLispOnly workspace by choosing the OPTIONS menu's STARTUP OPTIONS item. Then click SHOW LOAD VISTA? DIALOG and OK. Run ViSta again. In the WHICH SYSTEM DO YOU WISH TO RUN? dialog, choose XLISP-STAT. ViSta will now use the XLSONLY.WKS file. You can turn off the initial SHOW LOAD VISTA? dialog by using the STARTUP OPTIONS dialog.

## Faster, Smoother User Experience

Perhaps I should explain that I've changed the directory structure to speed up the program's startup time by reducing the number of files that need to be loaded. Since it doesn't have to load in very many files, the program's startup time is MUCH FASTER.

There are three code directories are:
1) SOURCE which contains files that are loaded into the system at the MAKE-VISTA time to become part of the .WKS file. These are the ones which are no longer loaded at run-time, thereby reducing the startup time by the time it took to load 94 files.
2) MAKETIME which contains files that are used to make the WKS file. Since everything depends on these files, they should normally not be changed.
3) RUNTIME which contains files that have to be distributed and then loaded in after the WKS file is loaded. These files are mostly model object code, which I judge to be useful for others to see if they want to write model objects. Some additional files cannot be put into the WKS file because they must get information that is specific to the local installation. These SPECIAL RUNTIME files, such as vista, vismenu1, vismenu2, vismenu3, config, dialogs, etc, are distributed in FSL form for code security reaasons.

## More Difficult Developer Experience

Unfortunately, this has made the developers process much more complicated. Now, whenever you change a SOURCE file or a RUNTIME file, it has to be recompiled and reloaded, and a new WKS file has to be made. This is the equivalent of the C/Unix Make process. Thus, I call it MAKE-VISTA.

I have completely automated this MAKE-VISTA process. It is not efficient (all files are loaded, whereas usually only one or two need to be, but its too time comsuming and complex for me to tackle at this time), but it works... now, when you've made such changes, and you exit ViSta, it compiles files that have changed. If there were some, it automatically remakes the WKS file. If not, it asks if you wish to make vista anyway. Usually, you do not. This option is more for me, to allow me to make changes in the MAKETIME files.

## What to do when things go wrong!

If a file doesn't compile properly, then the whole process terminates in a state in which you have no WKS file. In this situation, if ViSta is still running, DONT EXIT. First, correct the error and then type (make-vista) or use the MAKE-VISTA menu item.

If ViSta has stopped running, then try the following, in this order:

1. Double-click MakeViSta in the tools folder.
2. If this doesn't work, run ViSta, double-click the ShowViSta tool to open the window, and type (load "maketime\\maker").
3. If this doesn't work, remove the .INI and .WKS files and see if it will go through GENESYS.
4. If not, let me know.

## Developer is TOP DOG
(but the user is the 900 Lb (2000Kg) GORILLA!)

I've really spent a great deal of time trying to optimze the startup time, and at the same time make it possible for developers to develop! It's my top priority to get this working smoothly for developers, now that it works smoothly for users. So, if there are problems, let me know.

But above all, enjoy!